import {getAppstr,getToken,getPlatformName} from '@/utils/base.js'
import {returnData,aesDecrypt} from '@/utils/encryption.js'
import Vue from 'vue'
import store from '@/store'
module.exports = (vm) => {
    // 初始化请求配置
    uni.$u.http.setConfig((config) => {
		
        /* config 为默认全局配置*/
        config.baseURL = Vue.prototype.$httpUri; /* 根域名 */
		config.header = {
			// 'content-type': 'application/json;charset=utf-8',
			// 'content-type': 'application/x-www-form-urlencoded;charset=utf-8',
			
		}
	
	
        return config
    })
	
	// 请求拦截
	uni.$u.http.interceptors.request.use((config) => { // 可使用async await 做异步操作
	
	    // 初始化请求拦截器时，会执行此方法，此时data为undefined，赋予默认{}
	    let data = config.data || {}
		data.ts = (new Date()).getTime();
		data.nodeenv = process.env.NODE_ENV;
		data.token = getToken(data.ts);
		data.appstr = getAppstr();
		
		// data.systemId = Vue.prototype.$VUE_SYSTEM_ID;
		data.systemAppId = Vue.prototype.$VUE_SYSTEM_APPID;
		//赋值
	    config.data = returnData(data);
		// config.data.systemAppId = Vue.prototype.$VUE_SYSTEM_APPID;
	    return config 
	}, config => { // 可使用async await 做异步操作
	    return Promise.reject(config)
	})
	
	// 响应拦截
	uni.$u.http.interceptors.response.use((response) => { /* 对响应成功做点什么 可使用async await 做异步操作*/
		const data = response.data
		// if(process.env.NODE_ENV !== 'development') {
			data.data = aesDecrypt(data.data,data.sig);
		// }
		console.log(data)
		if(data.code === 101) {
			store.dispatch('user/clearAppStr');
			uni.reLaunch({
				url: '/pages/login/login',
				success: (e) => {
					console.log(e)
				},
				fail: (err) => {
					console.log(err)
				}
			})
		}
		return data
	}, (response) => { 
		// 对响应错误做点什么 （statusCode !== 200）
		return Promise.reject(response)
	})
}